System and method for monitoring locations of mobile devices

ABSTRACT

A method of identifying mobile computing devices includes sending a request from a first mobile computing device to a second mobile computing device for the location of the second mobile computing device, and receiving the location of the second mobile computing device at the first mobile computing device. The method further includes providing a notification to one of the first and second mobile computing devices based upon the location of the second mobile computing device.

BACKGROUND

The present application relates generally to the field of location-based services, and more particularly, to providing location-based data or notifications based upon the location and/or availability of one or more electronic devices.

Some location-based services may permit a user of an electronic device to obtain a graphical display of the location of other electronic devices. This is often accomplished using a server-based system, where various electronic devices may broadcast their location to a server that monitors the locations of the various electronic devices and provides location data to be used, for example, in generating a map of the device locations. One problem associated with this type of system is that with the increasing use of electronic devices, and in particular mobile computing devices, in order to accurately track the location of large numbers of such devices, servers must often send and/or receive significant numbers of communications, often creating delays in response time and increasing operational costs.

Further, some location-based services take into account only the location of an electronic device. In many instances, a user of an electronic device may be unavailable, or may desire to not be bothered by incoming messages such as phone calls, emails, etc. In these cases, the current location-based services may be unable to accommodate the needs and/or desires of many users.

Accordingly, there is a need for an electronic device that is able to provide location-based notifications without the need of a server that monitors the locations of various electronic devices. Further, there is also a need for an electronic device that takes into account the availability of one or more electronic devices in providing location-based data or notifications.

The teachings herein extend to those embodiments which are within the scope of the appended claims, regardless of whether they accomplish one or more of the above-identified needs.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a front view of a mobile computing device according to an exemplary embodiment;

FIG. 2 is a back view of the mobile computing device of FIG. 1 according to an exemplary embodiment;

FIG. 3 is a side view of the mobile computing device of FIG. 1 according to an exemplary embodiment;

FIG. 4 is a block diagram of the mobile computing device of FIG. 1 according to an exemplary embodiment;

FIG. 5 is an illustration of an electronic device wirelessly communicating with other electronic devices according to an exemplary embodiment;

FIG. 6 is an illustration of an image of a map indicating the location and/or availability of one or more electronic devices according to an exemplary embodiment;

FIG. 7 is a flowchart illustrating a method of providing a notification based on location-based data according to an exemplary embodiment; and

FIG. 8 is an illustration of an image of a listing providing distance and/or availability information for one or more electronic devices according to an exemplary embodiment.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Referring to FIGS. 1-3, a mobile computing device 10 is shown. The teachings herein can be applied to device 10 or to other electronic devices (e.g., a desktop computer), mobile computing devices (e.g., a laptop computer) or handheld computing devices, such as a personal digital assistant (PDA), smartphone, mobile telephone, personal navigation device, etc. According to one embodiment, device 10 is a smartphone, which is a combination mobile telephone and handheld computer having PDA functionality. PDA functionality can comprise one or more of personal information management (e.g., including personal data applications such as email, calendar, phone, text messaging, etc.), database functions, word processing, spreadsheets, voice memo recording, Global Positioning System (GPS) functionality, etc. Device 10 is configured to synchronize personal information from these applications with a computer (e.g., a desktop, laptop, server, etc.). Device 10 is further configured to receive and operate additional applications provided to device 10 after manufacture, e.g., via wired or wireless download, SecureDigital card, etc.

As shown in FIGS. 1-3, device 10 includes a housing 12 and a front side 14 and a back side 16. Device 10 further comprises a display 18 and a user input device 20 (e.g., a QWERTY keyboard, buttons, touch screen, speech recognition engine, etc.). Display 18 can comprise a touch screen display in order to provide user input to a processor 40 (see FIG. 4) to control functions, such as to select options displayed on display 18, enter text input to device 10, or enter other types of input. Display 18 also provides images (see, e.g., FIG. 6) that are displayed and may be viewed by users of device 10. User input device 20 can provide similar inputs as those of touch screen display 18. Device 10 can further comprise a speaker 26, and a stylus 30 to assist the user in making selections on display 18.

According to an exemplary embodiment, housing 12 is configured to hold a screen such as display 18 in a fixed relationship above a user input device such as user input device 20 in a substantially parallel or same plane. This fixed relationship excludes a hinged or movable relationship between the screen and the user input device (e.g., a plurality of keys) in the fixed embodiment. Device 10 may be a handheld computer, which is a computer small enough to be carried in a typical front pocket found in a pair of pants, comprising such devices as typical mobile telephones and personal digital assistants, but excluding typical laptop computers and tablet PCs.

In various embodiments, housing 12 could be any size, shape, and dimension. In some embodiments, housing 12 has a width 13 of no more than about 200 mm or, alternatively, no more than about 100 mm. According to some of these embodiments, housing 12 has a width 13 of no more than about 85 mm or, alternatively, no more than about 65 mm. According to some embodiments, housing 12 has a width 13 of at least about 30 mm or, alternatively, at least about 50 mm. According to some of these embodiments, housing 12 has a width 13 of at least about 55 mm.

In some embodiments, housing 12 has a length 15 of no more than about 200 mm or, alternatively, no more than about 150 mm. According to some of these embodiments, housing 12 has a length 15 of no more than about 135 mm or, alternatively, no more than about 125 mm. According to some embodiments, housing 12 has a length 15 of at least about 70 mm or, alternatively, at least about 100 mm. According to some of these embodiments, housing 12 has a length 15 of at least about 100 mm.

In some embodiments, housing 12 has a thickness 17 of no more than about 150 mm or, alternatively, no more than about 50 mm. According to some of these embodiments, housing 12 has a thickness 17 of no more than about 30 mm or, alternatively, no more than about 25 mm. According to some embodiments, housing 12 has a thickness 17 of at least about 10 mm or, alternatively, at least about 15 mm. According to some of these embodiments, housing 12 has a thickness 17 of at least about 50 mm.

In some embodiments, housing 12 has a volume of up to about 2500 cubic centimeters or, alternatively, up to about 1500 cubic centimeters. In some alternative embodiments, housing 12 has a volume of up to about 1000 cubic centimeters or, alternatively, up to about 600 cubic centimeters.

Referring now to FIG. 4, device 10 comprises a processing circuit 46 comprising a processor 40. Processor 40 can comprise one or more microprocessors, microcontrollers, and other analog and/or digital circuit components configured to perform the functions described herein. Processor 40 comprises one or more memories (e.g., random access memory, read only memory, flash, etc.) configured to store software applications provided during manufacture or subsequent to manufacture by the user or by a distributor of device 10. In one embodiment, processor 40 can comprise a first applications microprocessor configured to run a variety of personal information management applications, such as email, a calendar, contacts, etc., and a second, radio processor on a separate chip or as part of a dual-core chip with the application processor. The radio processor is configured to operate telephony functionality. Device 10 can be configured for cellular radio telephone communication, such as Code Division Multiple Access (CDMA), Global System for Mobile Communications (GSM), Third Generation (3G) systems such as Wide-Band CDMA (WCDMA), or other cellular radio telephone technologies. Device 10 can further be configured for data communication functionality, for example, via GSM with General Packet Radio Service (GPRS) systems (GSM/GPRS), CDMA/1XRTT systems, Enhanced Data Rates for Global Evolution (EDGE) systems, Evolution Data Only or Evolution Data Optimized (EV-DO), and/or other data communication technologies.

Device 10 comprises a receiver 38 which comprises analog and/or digital electrical components configured to receive and transmit wireless signals via antenna 22 to provide cellular telephone and/or data communications with a fixed wireless access point, such as a cellular telephone tower, in conjunction with a network carrier, such as, Verizon Wireless, Sprint, etc. Device 10 can further comprise circuitry to provide communication over a local area network, such as Ethernet or according to an IEEE 802.11x standard or a personal area network, such as a Bluetooth or infrared communication technology.

Device 10 further comprises a microphone 36 (see FIG. 2) configured to receive audio signals, such as voice signals, from a user or other person in the vicinity of device 10, typically by way of spoken words. Alternatively or in addition, processor 40 can further be configured to provide video conferencing capabilities by displaying on display 18 video from a remote participant to a video conference, by providing a video camera on device 10 for providing images to the remote participant, by providing text messaging, two-way audio streaming in full- and/or half-duplex mode, etc.

Device 10 further comprises a location determining application, shown in FIG. 3 as GPS application 44. GPS application 44 can communicate with and provide the location of device 10 at any given time. Device 10 may employ one or more location determination techniques including, for example, Global Positioning System (GPS) techniques, Cell Global Identity (CGI) techniques, CGI including timing advance (TA) techniques, Enhanced Forward Link Trilateration (EFLT) techniques, Time Difference of Arrival (TDOA) techniques, Angle of Arrival (AOA) techniques, Advanced Forward Link Trilateration (AFTL) techniques, Observed Time Difference of Arrival (OTDOA), Enhanced Observed Time Difference (EOTD) techniques, Assisted GPS (AGPS) techniques, hybrid techniques (e.g., GPS/CGI, AGPS/CGI, GPS/AFTL or AGPS/AFTL for CDMA networks, GPS/EOTD or AGPS/EOTD for GSM/GPRS networks, GPS/OTDOA or AGPS/OTDOA for UMTS networks), and so forth.

Device 10 may be arranged to operate in one or more location determination modes including, for example, a standalone mode, a mobile station (MS) assisted mode, and/or an MS-based mode. In a standalone mode, such as a standalone GPS mode, device 10 may be arranged to autonomously determine its location without real-time network interaction or support. When operating in an MS-assisted mode or an MS-based mode, however, device 10 may be arranged to communicate over a radio access network (e.g., UMTS radio access network) with a location determination entity such as a location proxy server (LPS) and/or a mobile positioning center (MPC).

Referring now to FIG. 5, according to an exemplary embodiment, device 10 is configured to communicate with one or more other electronic devices, shown in FIG. 4 as mobile computing devices 50 and 52. According to one embodiment, device 10 requests the location data for devices 50, 52 from devices 50, 52 via wireless communications. The wireless communications may include communications via a cellular communications network, Bluetooth transceivers, infrared communications, etc.

Processor 40 provides a notification (e.g., email, phone call, text message, graphical map display, etc.) to device 10 and/or devices 50, 52 based upon location data for devices 50, 52. For example, the notification may comprise a graphical display of a map that includes the location of device 10 and/or the location of one or more other electronic devices. Alternatively, the notification may comprise a message (e.g., an email, text message, etc.) that is automatically generated and sent to device 10 (and/or one or more other electronic devices). For example, a user of device 10 may receive an email indicating that a particular device is within a certain proximity of device 10 or at a certain geographic location.

According to an exemplary embodiment, devices 50, 52 (and/or their respective users) may belong to a predetermined database of devices, such as contacts information database 42 shown in FIG. 3, from which processor 40 requests location data. For example, devices 50, 52 may be associated with user data stored in a contacts application (e.g., an electronic contacts application designed to store contact information such as a user's name, phone number, email address, etc.). According to an alternative embodiment, devices 50, 52 may be associated with users that have been placed on a short list of contacts (e.g., a “friends list,” a subset of a contacts listing, etc.). Various other methods of identifying devices 50, 52 may also be used. For example, device 50 or 52 may be associated with a second user that the user of device 10 has chosen to request location data from, and the second user may not belong to any particular group, list, etc. According to another embodiment, rather than a user identifying a subset of contacts (e.g., from a contacts application) from which to request location data, a user may instead identify users associated with devices from which the user of device 10 does not wish to request location data. Processor 40 may then request location data from those devices except those identified.

Processor 40 may request the location data in response to receiving an input from a user of device 10. According to an alternative embodiment, processor 40 may be configured to request the location data automatically based upon time or location parameters. For example, processor 40 may request location data every hour (or every ½ hour, every minute, etc.), or the location data may be requested on a continuous basis. Device 10 may also permit a user to identify discrete times at which location data is to be requested. Alternatively, processor 40 may request the location data based upon the location of device 10. For example, if a user wants to know if a particular device is nearby whenever the user passes a specific location, the user may configure processor 40 to request the location data of the particular device whenever device 10 is at or near the specific location. The specific location and/or time parameters may be configured by a user of device 10 and may vary based upon the devices to which the request for location data is sent.

After sending the request for the location data, device 10 receives the location data from devices 50, 52. The location data may include information such as the current geographic locations of devices 50, 52, the current distance between devices 50, 52 and device 10, a point of interest nearest to or in the vicinity of devices 50 and/or 52, and so on. Other location data may also be provided according to various other alternative embodiments.

According to an exemplary embodiment, the receipt of location data is permission-based. In order for a user of device 10 to receive the location data for a particular device (even if the particular device is associated with a user on a “friends list”), the user of the particular device must first grant permission for the location data to be communicated to device 10. If no permission has been granted, device 10 will not receive a response from the other device. According to one embodiment, an indication that permission has not been granted may be provided to a user of device 10. Devices 50, 52 may be configured to store a user-defined list of contacts which do and/or do not have permission to request location data associated with devices 50, 52.

Once the location data is received by device 10, processor 40 may send out one or more notifications to device 10 and/or devices 50, 52 based upon the location data. For example, a user of device 10 may wish to simply know the locations of devices 50, 52. In such a case, processor 40 may provide a notification, such as the graphical display shown in FIG. 6, indicating the location of devices 50, 52. According to another embodiment, processor 40 may provide a display of only those devices within a certain distance of device 10. For example, referring to FIG. 5, a user may wish to know whether any other users on a friends list are within a certain distance, such as distance 54 (which may be user-adjustable or pre-set by the application), of device 10. In the embodiment shown in FIG. 5, only device 52 is within distance 54 of device 10. Therefore, a user of device 10 may be provided with a notification including a graphical map displaying the geographic location of device 52 (e.g., and preferably device 10). If the user of device 10 requests location data for any devices within distance 56, both devices 50, 52 may be displayed to the user.

According to another embodiment, processor 40 may provide the notification based on the geographic location of devices 50, 52, rather than the proximity of devices 50, 52 to device 10. For example, referring further to FIG. 5, a user may wish to determine whether any other users on a friends list are currently in a specific city or other specific location 58. Processor 40 requests the location data from all of the users on the friends list, but displays only those in the specific location. For example, referring to FIG. 5, a user may wish to know whether any of devices 50, 52 are within location 58. Because only device 52 is located within location 58, the user of device 10 may be provided with a notification including a map of location 58 and the particular location of device 50 and optionally directions (e.g. turn-by-turn, graphical, etc.) to location 58.

Referring now to FIG. 6, according to one embodiment, the notification includes a graphical image 80 of a map 82 that indicates the geographic location of devices 50, 52. Image 80 may further indicate the geographic location of device 10. Other information may further be provided via image 80, for example, driving directions to/from one or more other devices, points of interest located within the displayed geographic area, etc. According to one embodiment, a user may select (e.g. highlight, hover over, etc.) one of the devices displayed on image 80, and be provided with an overlay menu of options (e.g. “email,” “call,” etc.) from which to select in order to contact the selected device. According to another embodiment, a user may toggle between a graphical display such as that shown in FIG. 6. and a textual listing of the nearby devices (see FIG. 8). For example, a user may select the “List results” option 53 shown in FIG. 6 to view a textual listing 90 of the devices as shown in FIG. 8. For example, listing 90 may include name information 94, distance information (to/from) 96, availability information 98, etc. Further, textual listing 90 may include toggle option 100, permitting a user to return to a graphical display such as that shown in FIG. 6.

As shown in FIG. 6, the notification includes a graphical display of the location of device 10, and one or more other devices 50, 52. According to various other embodiments, the notification may comprise an email, a text message, etc. or other notification or message that may be sent automatically to one or more of device 10 and/or other mobile devices such as devices 50, 52. For example, upon determining that device 50 is within a specified distance of device 10, processor 40 may generate and send an email to one or both of the devices (e.g. “John is nearby.”).

As discussed with respect to FIGS. 5 and 6, processor 40 requests location data from one or more other electronic devices (e.g., devices 50, 52 shown in FIG. 5) and provides a notification to device 10 and/or the other electronic device(s) based on the location data. According to an alternative embodiment, providing the notification and/or receiving the location data from the other electronic devices is also based upon the availability data (e.g., presence) of the other devices. Availability data reflects the availability of a particular device and may represent various states such as “available,” “unavailable,” “do not disturb,” “silent/vibrate mode only,” etc. Availability data may reflect the availability of a device to, for example, receive and respond to emails, phone calls, text messages, and other messages. Availability data may also reflect the availability of a user as defined by, for example, an electronic calendar storing appointments and indicating that the user is available/unavailable during a certain time period. Availability data may also reflect an availability status selected by a user (e.g., do not disturb, silent mode, etc.). Further yet, availability data may take into account whether a device is currently powered ON or OFF. Other factors may further be taken into account in determining the availability of a particular device.

According to one embodiment, device 10 requests and receives the availability data for a particular electronic device from the electronic device, e.g., one of devices 50, 52, rather than from, for example, a server that collects, stores, and updates availability data for a number of electronic devices. According to another embodiment, the availability data is provided by a server or a third party source.

Processor 40 may display an indication of the availability of particular devices along with the locations of the particular devices. For example, as shown in FIG. 6, image 80 shows devices 50, 52 having availability indicators 84, 86, respectively. Indicators 84, 86 may be icons that represent the availability of a particular device (e.g., a smiling face for available, a frowning face for unavailable, etc.). Alternatively, indicators 84, 86 may include textual phrases representing the availability of the devices (e.g., “available,” “busy,” etc.). Indicators 84, 86 may take other forms according to various other alternative embodiments.

According to one embodiment, when a particular device is unavailable, processor 40 does not receive the location data for the device. Device 10 may then provide an indication that the device is unavailable without providing the location of the device. According to another embodiment, if a particular device is unavailable, neither the availability nor the location of the device is provided.

Referring now to FIG. 7, a flowchart illustrating the process of providing a notification based upon location data is shown. At step 60, a request is sent from a first mobile device to a second mobile device for location data for the second mobile device. At step 62, the first mobile device receives the location data for the second mobile device from the second mobile device. The location data may be communicated to/from the first and second mobile devices via wireless communications such as cellular communications, Bluetooth-based communications, etc. At step 64, the processor of the first mobile device provides a notification (e.g., a graphical display of a map, an email, text message, phone call, or other message, etc.) based on the location data. The notification may be sent to one or both of the first and second electronic devices, and may include the location and/or availability data.

As discussed above, processor 40 may take availability data for other electronic devices into account in addition to location data in determining whether to provide a notification and the content of the notification. For example, referring again to FIG. 7, if processor 40 additionally requests availability data at step 60, whether the location data is received may be dependent upon the availability data (e.g., if the particular device is “unavailable,” location data for the particular device may not be received by device 10).

As discussed with respect to the FIGURES, device 10 requests and receives location data from another electronic device, such as device 50. According to an alternative embodiment, a server may be provided that tracks the location of the devices and generates a notification to one or both devices based on the location of the devices (e.g., based on whether the two devices are within a certain distance or the two devices are within a specific geographic area). A server-based architecture may utilize many of the same features as the peer to peer architecture, including friends lists, permission requirements, availability-based notifications, etc.

While the detailed drawings, specific examples and particular formulations given describe exemplary embodiments, they serve the purpose of illustration only. The hardware and software configurations shown and described may differ depending on the chosen performance characteristics and physical characteristics of the computing devices. The systems shown and described are not limited to the precise details and conditions disclosed. Furthermore, other substitutions, modifications, changes, and omissions may be made in the design, operating conditions, and arrangement of the exemplary embodiments without departing from the scope of the invention as expressed in the appended claims. 

1. A method of identifying mobile computing devices, comprising: sending a request from a first mobile computing device to a second mobile computing device for the location of the second mobile computing device; receiving the location of the second mobile computing device at the first mobile computing device; and providing a notification to one of the first and second mobile computing devices based upon the location of the second mobile computing device.
 2. The method of claim 1, wherein providing the notification is based further upon availability data indicative of an availability status of the second mobile computing device.
 3. The method of claim 2, further comprising: sending a request for the availability data for the second mobile computing device; and receiving the availability data at the first mobile computing device from the second mobile computing device.
 4. The method of claim 2, further comprising: receiving the availability data from a server separate from the first and second mobile computing devices.
 5. The method of claim 1, wherein providing the notification comprises displaying a map indicating the geographic location of the second mobile computing device.
 6. The method of claim 1, wherein providing the notification further comprises providing the availability data of the second mobile computing device.
 7. The method of claim 1, wherein the availability data of the second mobile computing device is based upon electronic calendar data stored on the second mobile computing device.
 8. The method of claim 1, wherein the notification is one of an email, a phone call, and a text message.
 9. The method of claim 1, wherein the request is sent over a cellular communications network.
 10. The method of claim 1, wherein providing the notification is based further upon permission data indicative of a permission status of the second mobile computing device defined by a user of the second mobile computing device
 11. The method of claim 1, wherein the first mobile computing device is a handheld computing device.
 12. An electronic device, comprising: a display; and a processing circuit configured to run an application, the application configured to send a request to a mobile computing device for the location of the mobile computing device, receive the location of the mobile computing device, and provide a notification based upon the location of the mobile computing device.
 13. The electronic device of claim 12, wherein the application is configured to provide the notification based further upon availability data indicative of an availability status for the mobile computing device.
 14. The electronic device of claim 12, wherein the notification comprises a geographic map indicating the location of the mobile computing device.
 15. The electronic device of claim 12, wherein the notification further comprises an indication of the availability data of the mobile computing device.
 16. The electronic device of claim 15, wherein the processor is further configured to send a second notification to the mobile computing device upon receipt of the location of the mobile computing device.
 17. The electronic device of claim 16, wherein the second notification is one of a wireless phone call, a text message, and an email.
 18. The electronic device of claim 12, wherein the processor is configured to provide the notification based further upon permission data indicative of a permission status for the mobile computing device defined by a user of the mobile computing device.
 19. The electronic device of claim 12, wherein the electronic device is a mobile computing device.
 20. A method of identifying mobile computing devices, comprising: requesting location and availability data for a first mobile computing device; and receiving the location data for the first mobile computing device based upon the availability data of the first mobile computing device; wherein the availability data is indicative of an availability status of the first mobile computing device.
 21. The method of claim 20, further comprising: providing a notification to a second mobile computing device based upon the availability data.
 22. The method of claim 21, further comprising: providing the availability data for the first mobile computing device on a display of the second mobile computing device.
 23. The method of claim 20, further comprising: sending a wireless communication from the second mobile computing device to the first mobile computing device based upon the availability data. 